#pragma once

#include <vector>
#include "ValueWithError.h"

// Data structures for form date storage
class SmallCalibData
{
public:
    double radius;
    double temperatureCoef;
    double densityCoef;
    double energyCoef;
    double angle;
    double distanceAxisLaserRay;

    SmallCalibData()
    {
        radius = 0.0;
        temperatureCoef = 0.0;
        densityCoef = 0.0;
        energyCoef = 0.0;
        angle = 0.0;
        distanceAxisLaserRay = 0.0;
    }
};

typedef std::vector<ValueWithError> BgCalibData;
typedef std::vector<ValueWithError> PeakRatioCalibData;

class SpectralCalibData
{
public:
    std::vector<double> specLine;
    std::vector<ValueWithError> specCoef;
    SpectralCalibData()
    {
        specLine.resize(5, 0.0);
        specCoef.resize(5);
    }
};



class CalibData
{
public:
    CalibData(void)
    {
        bgCalib.resize(5);
        peakRatioCalib.resize(5);
        
    }
    ~CalibData(void)
    {
        bgCalib.clear();
        peakRatioCalib.clear();
        spectralCalib.specCoef.clear();
        spectralCalib.specLine.clear();
    }

    SmallCalibData smallCalib;
    BgCalibData bgCalib;
    SpectralCalibData spectralCalib;
    PeakRatioCalibData peakRatioCalib;
};

